<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>SQL Conformance</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REV="MADE"
HREF="mailto:pgsql-docs@postgresql.org"><LINK
REL="HOME"
TITLE="PostgreSQL 9.1.2 Documentation"
HREF="index.html"><LINK
REL="UP"
TITLE="Appendixes"
HREF="appendixes.html"><LINK
REL="PREVIOUS"
TITLE="SQL Key Words"
HREF="sql-keywords-appendix.html"><LINK
REL="NEXT"
TITLE="Supported Features"
HREF="features-sql-standard.html"><LINK
REL="STYLESHEET"
TYPE="text/css"
HREF="stylesheet.css"><META
HTTP-EQUIV="Content-Type"
CONTENT="text/html; charset=ISO-8859-1"><META
NAME="creation"
CONTENT="2011-12-01T22:07:59"></HEAD
><BODY
CLASS="APPENDIX"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="5"
ALIGN="center"
VALIGN="bottom"
><A
HREF="index.html"
>PostgreSQL 9.1.2 Documentation</A
></TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="top"
><A
TITLE="SQL Key Words"
HREF="sql-keywords-appendix.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="top"
><A
HREF="appendixes.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="60%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="20%"
ALIGN="right"
VALIGN="top"
><A
TITLE="Supported Features"
HREF="features-sql-standard.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="APPENDIX"
><H1
><A
NAME="FEATURES"
></A
>Appendix D. SQL Conformance</H1
><DIV
CLASS="TOC"
><DL
><DT
><B
>Table of Contents</B
></DT
><DT
>D.1. <A
HREF="features-sql-standard.html"
>Supported Features</A
></DT
><DT
>D.2. <A
HREF="unsupported-features-sql-standard.html"
>Unsupported Features</A
></DT
></DL
></DIV
><P
>  This section attempts to outline to what extent
  <SPAN
CLASS="PRODUCTNAME"
>PostgreSQL</SPAN
> conforms to the current SQL
  standard.  The following information is not a full statement of
  conformance, but it presents the main topics in as much detail as is
  both reasonable and useful for users.
 </P
><P
>  The formal name of the SQL standard is ISO/IEC 9075 <SPAN
CLASS="QUOTE"
>"Database
  Language SQL"</SPAN
>.  A revised version of the standard is released
  from time to time; the most recent update appearing in 2008.
  The 2008 version is referred to as ISO/IEC 9075:2008, or simply as SQL:2008.
  The versions prior to that were SQL:2003, SQL:1999, and SQL-92.  Each version
  replaces the previous one, so claims of conformance to earlier
  versions have no official merit.
  <SPAN
CLASS="PRODUCTNAME"
>PostgreSQL</SPAN
> development aims for
  conformance with the latest official version of the standard where
  such conformance does not contradict traditional features or common
  sense.  Many of the features required by the SQL
  standard are supported, though sometimes with slightly differing
  syntax or function.  Further moves towards conformance can be
  expected over time.
 </P
><P
>  <ACRONYM
CLASS="ACRONYM"
>SQL-92</ACRONYM
> defined three feature sets for
  conformance: Entry, Intermediate, and Full.  Most database
  management systems claiming <ACRONYM
CLASS="ACRONYM"
>SQL</ACRONYM
> standard
  conformance were conforming at only the Entry level, since the
  entire set of features in the Intermediate and Full levels was
  either too voluminous or in conflict with legacy behaviors.
 </P
><P
>  Starting with <ACRONYM
CLASS="ACRONYM"
>SQL:1999</ACRONYM
>, the SQL standard defines
  a large set of individual features rather than the ineffectively
  broad three levels found in <ACRONYM
CLASS="ACRONYM"
>SQL-92</ACRONYM
>.  A large
  subset of these features represents the <SPAN
CLASS="QUOTE"
>"Core"</SPAN
>
  features, which every conforming SQL implementation must supply.
  The rest of the features are purely optional.  Some optional
  features are grouped together to form <SPAN
CLASS="QUOTE"
>"packages"</SPAN
>, which
  SQL implementations can claim conformance to, thus claiming
  conformance to particular groups of features.
 </P
><P
>  The <ACRONYM
CLASS="ACRONYM"
>SQL:2008</ACRONYM
> and <ACRONYM
CLASS="ACRONYM"
>SQL:2003</ACRONYM
>
  standard versions are also split into a number
  of parts.  Each is known by a shorthand name.  Note that these parts
  are not consecutively numbered.

  <P
></P
></P><UL
><LI
><P
>ISO/IEC 9075-1 Framework (SQL/Framework)</P
></LI
><LI
><P
>ISO/IEC 9075-2 Foundation (SQL/Foundation)</P
></LI
><LI
><P
>ISO/IEC 9075-3 Call Level Interface (SQL/CLI)</P
></LI
><LI
><P
>ISO/IEC 9075-4 Persistent Stored Modules (SQL/PSM)</P
></LI
><LI
><P
>ISO/IEC 9075-9 Management of External Data (SQL/MED)</P
></LI
><LI
><P
>ISO/IEC 9075-10 Object Language Bindings (SQL/OLB)</P
></LI
><LI
><P
>ISO/IEC 9075-11 Information and Definition Schemas (SQL/Schemata)</P
></LI
><LI
><P
>ISO/IEC 9075-13 Routines and Types using the Java Language (SQL/JRT)</P
></LI
><LI
><P
>ISO/IEC 9075-14 XML-related specifications (SQL/XML)</P
></LI
></UL
><P>
 </P
><P
>  The <SPAN
CLASS="PRODUCTNAME"
>PostgreSQL</SPAN
> core covers parts 1, 2, 9,
  11, and 14.  Part 3 is covered by the ODBC driver, and part 13 is
  covered by the PL/Java plug-in, but exact conformance is currently
  not being verified for these components.  There are currently no
  implementations of parts 4 and 10
  for <SPAN
CLASS="PRODUCTNAME"
>PostgreSQL</SPAN
>.
 </P
><P
>  PostgreSQL supports most of the major features of SQL:2008.  Out of
  179 mandatory features required for full Core conformance,
  PostgreSQL conforms to at least 160.  In addition, there is a long
  list of supported optional features.  It might be worth noting that at
  the time of writing, no current version of any database management
  system claims full conformance to Core SQL:2008.
 </P
><P
>  In the following two sections, we provide a list of those features
  that <SPAN
CLASS="PRODUCTNAME"
>PostgreSQL</SPAN
> supports, followed by a
  list of the features defined in <ACRONYM
CLASS="ACRONYM"
>SQL:2008</ACRONYM
> which
  are not yet supported in <SPAN
CLASS="PRODUCTNAME"
>PostgreSQL</SPAN
>.
  Both of these lists are approximate: There might be minor details that
  are nonconforming for a feature that is listed as supported, and
  large parts of an unsupported feature might in fact be implemented.
  The main body of the documentation always contains the most accurate
  information about what does and does not work.
 </P
><DIV
CLASS="NOTE"
><BLOCKQUOTE
CLASS="NOTE"
><P
><B
>Note: </B
>   Feature codes containing a hyphen are subfeatures.  Therefore, if a
   particular subfeature is not supported, the main feature is listed
   as unsupported even if some other subfeatures are supported.
  </P
></BLOCKQUOTE
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="sql-keywords-appendix.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="features-sql-standard.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><ACRONYM
CLASS="ACRONYM"
>SQL</ACRONYM
> Key Words</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="appendixes.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Supported Features</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>